package com.xiaobaibai.units.pay;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalUtil {

    /**
     * 因为BigDecimal里面必须要转为字符串之后再计算才会准确,
     * 所以我们先将BigDecimal转为double,double转为string,再计算
     */
    public static BigDecimal add(double v1, double v2){
        BigDecimal b1=new BigDecimal(String.valueOf(v1));//两种转换都可以
        BigDecimal b2=new BigDecimal(Double.toString(v2));//必须先toString
        return b1.add(b2);
    }

    public static BigDecimal sub(double v1, double v2){
        BigDecimal b1=new BigDecimal(Double.toString(v1));
        BigDecimal b2=new BigDecimal(Double.toString(v2));
        return b1.subtract(b2);
    }

    public static BigDecimal mul(double v1, double v2){
        BigDecimal b1=new BigDecimal(Double.toString(v1));
        BigDecimal b2=new BigDecimal(Double.toString(v2));
        return b1.multiply(b2).setScale(2, RoundingMode.HALF_UP);//四舍五入保留两位小数
    }

}
